import com.fasterxml.jackson.databind.ObjectMapper;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

/**
 * @author 兴趣使然黄小黄
 * @version 1.0
 * 请求是 Json 格式
 */
class User{
    public int userId;
    public int classId;
}

@SuppressWarnings({"all"})
@WebServlet("/postJson")
public class PostJsonServlet extends HttpServlet {

    // 1. 创建一个 jackson 的核心对象
    private ObjectMapper objectMapper = new ObjectMapper();

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        // 2. 读取 body 中的请求, 然后使用 ObjectMapper 来解析成需要的对象
        // readValue 把 JSON 格式的字符串, 转成 Java 对象
        // 第一个参数, 表示对哪个字符串进行转换, 这个参数可以填一个 String, 也可以填一个 InputStream 对象, 还可以填 File 对象
        // 第二个参数, 表示要把这个 JSON 格式的字符串, 转成哪个 Java 对象
        User user = objectMapper.readValue(req.getInputStream(), User.class);

        resp.getWriter().write(user.userId + " : " + user.classId);
    }
}
